feat: TraceDecay V2 delivery (PR8–PR13) + daemon performance, memory, and reliability overhaul - #707
feat: TraceDecay V2 delivery (PR8–PR13) + daemon performance, memory, and reliability overhaul#707ScriptedAlchemy wants to merge 3682 commits into
Conversation
🦋 Changeset detectedLatest commit: ea098cb The changes in this PR will be included in the next version bump. Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
Post-reopen correction pushed in a23f86a: source-neutral background reconcile no longer advances the scheduler epoch and cancel in-flight text activation; mounted hook overflow uses the explicit invalidating path. Evidence: RED reproduced 0/1, GREEN 1/1 for ordinary_background_reconcile_does_not_supersede_in_flight_text_work; cargo check --lib --locked passed. |
💡 Codex Reviewtracedecay/.github/workflows/release.yml Lines 408 to 411 in fc20c4f For Linux targets, this archive now contains tracedecay/release-please-config.json Lines 22 to 25 in fc20c4f The new npm publication job derives its version from the packed tracedecay/dashboard/src/workspaces/delivery/DeliveryPage.tsx Lines 80 to 82 in fc20c4f When the scope bar selects a project other than the active project, this query keeps the same cache key and continues fetching the unprefixed active-project route. The dashboard already provides tracedecay/src/tracedecay/lifecycle/registry.rs Lines 118 to 122 in fc20c4f When AGENTS.md reference: AGENTS.md:L159-L161 tracedecay/plugin/cursor-native-extension/src/extension.ts Lines 187 to 189 in fc20c4f At activation or language-client restart, ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
fix(clippy): clear the workspace clippy failures on #707
Removing the re-export shims left their module doc comments orphaned in `context` and `graph`. The rest are pre-existing lints that only fire under `--all-features`, which compiles the `test-transport` support surface as non-test code: - the registered-test-server constructor gets the file's existing explicit `expect_used` allow, since `lib.rs` denies it only outside `cfg(test)`; - `http_application_registry` is read by the `cfg(test)` capacity journey and only reads as dead under `test-transport` alone, so the allow is gated to `not(test)` rather than renamed to a discard; - the hotpath cadence helpers keep `#[inline(always)]` with an explicit allow, preserving the author's intent instead of silently downgrading it. The `daemon_suite` restart wait is now the original helper recovered from the PR #707 head rather than a reconstruction: it additionally proves the runtime readiness receipt authorizes the exact configuration the SDK selected.
The relocation fix that anchored this test above the package allocated a `PathBuf` only to hand out a reference, which `-D warnings` rejects as `unnecessary_to_owned` and which failed the Clippy gate on #707. `validate_requested_workload` takes `&Path`, and `CARGO_MANIFEST_DIR` is a literal, so `Path::new` yields a `&'static Path` with no allocation and no temporary to borrow from.
|
#733 landed Clippy-red. Helper branch (not merged, shared checkout untouched):
Clears the #733 Clippy denials:
Adopt when you want: I will not land this on #707. |
|
Clippy helper is now on the Codex worktrees (still not landed on this PR head):
Same change as |
|
Isolated post-#721 verification (worktree Green (non-vacuous) on merge
Not green
Clippy helper remains on this tree at |
Ports the missing pieces of commit b1e41b712 ("fix(build): land the
batching commit's missing consumers") onto #707: HookCompletedReadinessDistributions
moved into tracedecay-agent-hosts with pub(crate) fields, so
input_rows_processed, input_rows_dropped_at_cap, and events_considered
are no longer reachable outside the crate. Adds the three public
accessors.
source_event and input_rows_received (also added by the source commit)
are not ported: nothing on this branch reads them through an accessor
today - the root-crate benchmark still compares via
serde_json::to_value(&readiness_distributions)["field"], which does
not need them.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
5d8f2a1 to
c7fcf3f
Compare
…d6ed chore(vendor): stacked vendor-only PR for #707 — generated vendor churn, land first
…rules Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
The in-process LocalStoreRuntimeResolverV1 keys project-session authority by ProjectId and enrollment-root path bytes. A fixed dashboard_graph_fixture id plus a non-canonical TempDir path collided on macOS when authority composition re-registered the canonical /private/var/folders root. Isolate HOME/profile/data under TraceDecayStorageEnvGuard and mint the id from the canonical temp root.
…design-plan-reopened
CI PR dogfood (run 34317967355) finished its journey then failed because TERM-to-KILL was 5044ms against the harness 5s grace. The journal showed retirement_reapers_join_start with deadline_remaining_ms=10138, so ~4.9s of the 15s background budget was already spent joining invocation (the code-index worker) and sibling owners before project-server drain. Prepare-time cancel now stops code-index reconcile, retention ticks, automation loops, and host-admission replay; those joins abort at the 2s task-abort deadline instead of waiting for the in-flight pass. MCP servers refuse new background refresh at TERM. Each owner logs elapsed_ms so the next hang names the lane. Measured locally with the debug CLI: idle TERM-to-exit 364ms, small indexed project 529ms (invocation 43ms, git store actors 1ms). CI before: 5044ms forced kill. 150 shutdown/lifecycle lib tests passed; clippy -D warnings clean. 5s harness grace unchanged.
The engine type exists only on unix because the daemon serves a Unix socket. Importing it unconditionally broke Windows libtest with E0432. Gate the import and the runtime_identity suite that requires the engine.
…sign-plan-reopened
The scoped observation reset destroyed the stream but left the external-source receipt journal. Re-admission of unchanged transcripts reused the same logical-effect keys with new request digests (new anchors, cursors, sanitization receipts), so every filler file conflicted and the worker retried the batch on its 1.5s cadence. That is why 24 rollouts took ~40s and 240 took ~6 min: linear in conflicting files, not a journal TTL. Convergence happened once the replaced-identity session (new observation ids) got through and the sweep finished, not because receipts expired. The reset already retires every other derivation of the destroyed stream. Receipts attest those commits, so they reset with it under the exclusive maintenance transaction. Re-admission is a rebuild, not a supersession of a still-true prior command. Writer-ledger rows named `external-source.*` retire with them; foreign keys stay. Refs #1130
…ign-plan-reopened
…al-redesign-plan-reopened
macOS tempfile mounts resolve through /var -> /private/var, so a lexical StoreLayout locator and the opened database path named one file as two. same_canonical_path already exists for that host spelling pair.
normalize_path_text canonicalized tempfile roots to /private/var while production session keys keep the public /var spelling, so pinned-project search missed the Hermes hit on macOS.
macOS /var firmlinks plus an append-only (write=false) open raced ENOENT on concurrent jsonl create. Canonicalize the existing prefix and open with write+append so the ambient cap-std walk sees one path.
macOS accept inherits O_NONBLOCK from the non-blocking GraphQL listener, so the first stream.read() returned WouldBlock (os 35) instead of the request.
Starved 3-vCPU macOS runners exceeded the 350ms initialize window, so hang and partial-frame tests reported StartupFailed instead of the later TransportFailed / InvalidResponse. Hang and quiet budgets stay 350ms/50ms.
FSEvents can mark dirty during watch install; shutdown joins before debounce drains, so requiring is_clean() failed on macOS. Compare the dirty snapshot around the post-shutdown commit and drop the 500ms sleep.
git worktree add --detach failed with ENOENT on .git/worktrees/*/locked when a parent process leaked GIT_DIR. Clear those vars like production git.rs and create the worktrees parent before add.
Replacement review for #421 after its accidental merge was reverted from master in 52a9aab. This commit has the exact tree of #421 head d4c67d4. Do not merge until explicitly authorized.
Issues this PR fixes
Refs #753 (source-identity + restart journey tests landed on branch at eae9328; keep draft until full product journey/CI)
Refs #792 (journey acceptance pending)
Refs #837 (journey acceptance pending)
Refs #838 (journey acceptance pending)
Refs #855 (journey acceptance pending)
Fixes #862
Fixes #861
Fixes #810
Fixes #845
Fixes #856
Fixes #853
Fixes #799
Fixes #836
Fixes #830
Partially addressed here, tracked to completion on their own issues: #852, #800, #863, #843, #842, #848.
🤖 Generated with Claude Code
#887 dead-surface deletion inventory
build_statecompatibility wrapper was deleted; the liveget_gc_metasuppression was removed.clean_c_comment/clean_c_doc_commentare retained because feat: TraceDecay V2 delivery (PR8–PR13) + daemon performance, memory, and reliability overhaul #707 now has production callers in C, C++, GLSL, Go, and Objective-C extractors.cargo check --workspace --all-targets;cargo clippy --workspace --all-targets -- -D warnings; both pass on the integrated branch.#888/#890/#891/#892 workflow cleanup
using-tracedecaybootstrap was deleted, detailed mechanics moved to live tool help, and unique safety/domain rules remain narrowly routed.no_skill_needed, and keep only actual host size/syntax limits.